package com.itheima.d2_buffered_stream;

import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * 将出师表.txt中的内容拷贝到新文件中，并恢复段落的顺序
 */
public class ChuShiBiao {
    public static void main(String[] args) {
        //1、读取原出师表中每一行数据到List集合中去
        List<String> contents = new ArrayList<>();
        try(BufferedReader br = new BufferedReader(new FileReader("day10io-app2/file/出师表.txt"))){
            //按行读取，放到集合中
            String line;
            while ((line = br.readLine()) != null) {
                contents.add(line); //将读取的行放到集合中
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        //2、对集合进行排序，按照行头数字进行升序排序
        Collections.sort(contents,(line1,line2)->{
            //将每行的数字解析出来，按照数字的大小进行排序
//            String[] data = line1.split("\\.");
//            String numStr = data[0];
//            int num = Integer.parseInt(numStr);
            int n1 = Integer.parseInt(line1.split("\\.")[0]);
            int n2 = Integer.parseInt(line2.split("\\.")[0]);
//            return n1 - n2;
            return Integer.compare(n1, n2);
        });
        contents.forEach(System.out::println);

        //3、将集合中有排序的数据写到新文件中
        try (BufferedWriter bw =
                     new BufferedWriter(new FileWriter("day10io-app2/file/出师表2.txt"))) {

            //遍历集合，并将数据按行写出
            for (String content : contents) {
                bw.write(content);
                //换行
                bw.newLine();
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
